Text-based messaging (e.g., texting, emailing, instant messaging) is commonly used by mobile device users to communicate with each other. However, the small form factor of mobile devices can contribute to slower rate of text input by users and increased frequency of text input errors. To increase the reliability and efficiency of text input, many applications provide a correction feature to correct for text input errors. Conventional correction systems typically rely on table lookups to correct for text input errors. However, building a table for this purpose requires a high level of linguistic expertise to assert which combination of words would not occur together, and thus should be corrected to something else.
For example, consider the phrase “to much.” A conventional correction system relying on a lookup table may be able to automatically correct “to much” to “too much.” However, such a correction is not always appropriate. For example, the phrase “to much” in the context of the phrase, “she gave the performance to much acclaim” would not need to be corrected. Thus, conventional correction systems based on lookup tables often end up making wrong “corrections,” which can lead to user frustration and additional delay in inputting text as a user attempts to manually correct the inappropriate” corrections.